
//930.和相同的二元子数组
class Solution {
public:
    //找小于等于k的数组个数
    int numMore(vector<int> nums,int k)
    {
        int n=nums.size();
        int left=0,tmp=0;
        int ret=0;
        for(int right=0;right<n;right++)
        {
            tmp+=nums[right];   //进窗口
            while(left<=right&&tmp>k) 
                tmp-=nums[left++];  //出窗口

            ret+=right-left+1;  //更新答案
        }
        return ret;
    }

    int numSubarraysWithSum(vector<int>& nums, int goal) {
        return numMore(nums,goal)-numMore(nums,goal-1);
    }
};